package com.gaga.common.entity.charts;

import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 用于通用数据返回
 *
 * @author liujia
 */
@Data
@Accessors(chain = true)
public class ChartData implements Serializable {

    private static final long serialVersionUID = -2573889018261931162L;

    /**
     * 名称
     */
    private Object name;

    /**
     * 数据标识
     */
    private Object valueKey;

    /**
     * 标题名称
     */
    private Object title;

    /**
     * 备注
     */
    private Object remark;

    /**
     * 别名
     */
    private Object aliasName;

    /**
     * 值 这个地方可能是转换之后的value
     */
    private Object value;

    /**
     * 实际值,用于某些特殊图形的展示
     */
    private Object realValue;


    /**
     * 目标值名称
     */
    private Object targetName = "目标";

    /**
     * 目标值
     */
    private Object targetValue;

    /**
     * 单位
     */
    private Object unit;

    /**
     * 同比 这个时间段和去年这个时间段的比较 今年时间段/去年时间段
     * 返回的都是0-100
     */
    private Object yearOnYearValue;

    /**
     * 同比名称
     */
    private Object yearOnYearName = "同比";

    /**
     * 同比单位
     */
    private Object yearOnYearUnit = "%";

    /**
     * 同比上升或者下降 1代表上升 -1下降
     */
    private Integer yearOnYearUpOrDown;

    /**
     * 同比上升 ↑ 或者下降 ↓
     */
    private String yearOnYearUpOrDownIcon;


    /**
     * 同期  这个时间段和去年这个时间段的比较 今年时间段 - 去年时间段
     * 返回的都是0-100
     */
    private Object samePeriodValue;

    /**
     * 同期名称
     */
    private Object samePeriodName = "同期";

    /**
     * 同期单位
     */
    private Object samePeriodUnit = "";

    /**
     * 同期上升或者下降 1代表上升 -1下降
     */
    private Integer samePeriodUpOrDown;

    /**
     * 环期
     */
    private Object cyclePeriodValue;

    /**
     * 环期名称
     */
    private Object cyclePeriodName = "环期";

    /**
     * 环期单位
     */
    private Object cycalPeriodUnit = "";

    /**
     * 环期上升或者下降 1代表上升 -1下降
     */
    private Integer cycalPeriodUpOrDown;


    /**
     * 环比 这个时间段和上个时间段的比较 一般是一个月的比较  这个时间段/上个时间段
     */
    private Object monthOnMonthValue;

    /**
     * 环比名称
     */
    private Object monthOnMonthName = "环比";

    /**
     * 环比单位
     */
    private Object monthOnMonthUnit = "%";

    /**
     * 环比上升或者下降 1代表上升 -1下降
     */
    private Integer monthOnMonthUpOrDown;

    private String monthOnMonthUpOrDownIcon;

    /**
     * 平均值
     */
    private Object avg;

    /**
     * 最大值
     */
    private Object max;

    /**
     * 最大值时间
     */
    private Object maxTime;

    /**
     * 坐标点
     */
    private Object coord;

    /**
     * 分类
     */
    private Object category;

    /**
     * children
     */
    private List<ChartData> children;

    /**
     * 额外参数
     */
    private JSONObject extArags;

    private boolean isDanger;


    /**复合值 和 复合比*/

    /**
     * 复合值
     */
    private Object basePeriodValue;

    /**
     * 复合值名称
     */
    private Object basePeriodName = "基础值";

    /**
     * 复合值单位
     */
    private Object basePeriodUnit = "";

    /**
     * 复合值上升或者下降 1代表上升 -1下降
     */
    private Integer basePeriodUpOrDown;

    /**
     * 复合比
     * 返回的都是0-100
     */
    private Object baseYearOnYearValue;

    /**
     * 复合比名称
     */
    private Object baseYearOnYearName = "复合比";

    /**
     * 复合比
     */
    private Object baseYearOnYearUnit = "%";

    /**
     * 复合比上升或者下降 1代表上升 -1下降
     */
    private Integer baseYearOnYearUpOrDown;

    private int evaluation;

    private String etlTime;

    private String drillCodeForXAxis;

    private Object exception;

    private Object picUrl;

    private Object showMsg;

    private Object showType;
    /**
     * 科室编码
     */
    private Object deptNo = "";

    /**
     * 备注日期（存储返回的数据日期--中医科学院需求特殊处理）
     */
    private Object remarkTag;


}
